Cooperative concatenated coding for wireless systems

ABSTRACT

Cooperative concatenated coding techniques are provided for wireless communications between at least two users and a base station. A network system employing cooperative concatenated coding includes cooperating user devices each configured to encode and transmit at least a portion of a joint message. The joint message includes at least a portion of a first message from a first cooperating user device and at least a portion of a second message from a second cooperating user device. An embodiment includes encoding a first message from a first cooperating user, receiving a second message from a second cooperating user and decoding the second message. The methodology also includes re-encoding at least a portion of the decoded message with at least a portion of the first message to form a combined message, and then transmitting at least a portion of the combined message.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Application Ser.No. 60/916,423, filed on May 7, 2007, entitled “COOPERATIVE CONCATENATEDCODING FOR WIRELESS SYSTEMS”, the entirety of which is incorporatedherein by reference.

TECHNICAL FIELD

The subject disclosure relates to cooperative concatenated coding forwireless communication systems.

BACKGROUND

In conventional cellular networks, mobile devices communicateindividually with the base station and are susceptible to severe channelfading. Diversity techniques in time and frequency have been used toimprove system performance but often at the expense of bandwidthefficiency. Multiple-antenna solutions have recently evolved as afurther attempt to achieve spatial diversity without sacrificing systembandwidth, however, their feasibility has been largely limited by thedevice dimensions, especially at the mobile terminals. In view of this,user cooperation has been proposed to achieve spatial diversity byallowing different users to relay messages from the source to thedestination.

Three commonly used cooperation strategies are amplify-and-forward (AF),decode-and-forward (DF), and coded cooperation (CC). CC gives anadditional coding gain compared to AF and DF. With CC, the relay firstdecodes the received source message and then re-encodes it into adifferent set of parity bits before forwarding it to the destination.This is in contrast to AF and DF where the same set of parity bits ispresent in the forwarded message of the relay. In essence, CC utilizes amore powerful channel code and exploits spatial diversity bytransmitting the parity bits through different diversity paths.

While conventional CC can achieve an additional coding gain compared toAF and DF, the improvement over its non-cooperative counterpartemploying the same powerful channel code relies solely on the diversitybranch provided by the cooperating user. In this regard, the coding gainof CC thus disappears if the cooperating user operates at the samereceive signal-to-noise (SNR) ratio at the base station, as will be thecase when users share the same mode of modulation and codingconfiguration and target error rate in an adaptive system with channelknowledge given at the transmitter.

Accordingly, improved systems and methods are desired for CC, which canachieve other potential benefits in addition to the spatial diversitygain. The above-described deficiencies of current designs for CC aremerely intended to provide an overview of some of the problems oftoday's designs, and are not intended to be exhaustive. Other problemswith the state of the art and corresponding benefits of CC techniquesdescribed herein may become further apparent upon review of thefollowing description of the various non-limiting embodiments.

SUMMARY

A simplified summary is provided herein to help enable a basic orgeneral understanding of various aspects of exemplary, non-limitingembodiments that follow in the more detailed description and theaccompanying drawings. This summary is not intended, however, as anextensive or exhaustive overview. The sole purpose of this summary is topresent some concepts related to the various exemplary non-limitingembodiments in a simplified form as a prelude to the more detaileddescription that follows.

In various embodiments, cooperative concatenated coding is provided forwireless communications between at least two users and a base station.In one embodiment, a network system is provided employing cooperativeconcatenated coding of communications. The network system can include atleast two cooperating user devices each configured to encode andtransmit at least a portion of a joint message. The joint messageincludes at least a portion of a first message from a first cooperatinguser device and at least a portion of a second message from a secondcooperating user device.

In other exemplary, non-limiting embodiments, the cooperativeconcatenated coding methodology includes encoding a first message from afirst cooperating user, receiving a second message from a secondcooperating user, and decoding the second message. The methodology alsoincludes re-encoding at least a portion of the decoded message with atleast a portion of the first message to form a combined message, andthen transmitting at least a portion of the combined message.

BRIEF DESCRIPTION OF THE DRAWINGS

The systems and methods for cooperative concatenated coding are furtherdescribed with reference to the accompanying drawings in which:

FIG. 1 illustrates a flowchart of a method of cooperative concatenatedcoding;

FIG. 2 illustrates a high-level block diagram of a cooperativeconcatenated coding system;

FIG. 3 comparatively illustrates a two-user system with a fixed timeslotallocation ratio using conventional non-cooperation, conventional codedcooperation;

FIG. 4 illustrates a high-level block diagram of a serial concatenatedconvolution code encoder, including a joint-user cooperative encoder;

FIG. 5 illustrates a block diagram of the joint-user cooperative encoderof FIG. 4;

FIG. 6 illustrates a block diagram of an iterative decoder in connectionwith a cooperative concatenated code;

FIG. 7 shows the bit error rate for different number of users in aspatial-diversity deficient scenario;

FIG. 8 shows the bit error rate with three cooperating users fordifferent input block sizes in a spatial-diversity deficient scenario;

FIG. 9 shows the bit error rate for different inter-user channelconditions with a reduced-complexity cooperative encoder in aspatial-diversity deficient scenario;

FIG. 10 is a block diagram representing an exemplary non-limitingnetworked environment in which various embodiments described herein canbe implemented;

FIG. 11 is a block diagram representing an exemplary non-limitingcomputing system or operating environment in which various embodimentsdescribed herein can be implemented; and

FIG. 12 illustrates an overview of a network environment suitable forservice by one or more embodiments described herein.

DETAILED DESCRIPTION

Overview

As mentioned in the background, improved systems and methods are desiredfor coded cooperation, which realize other benefits in addition to apotential spatial diversity gain. In various non-limiting embodiments, acoded cooperation architecture is provided where the cooperating usersbenefit not only from spatial diversity gain, but also from a morepowerful joint-user channel code. Using the techniques described herein,an interleaver gain is realized in data communications that increaseswith the number of cooperating users. This additional performance gainoccurs even when the receive SNR of all of the cooperating users arekept the same at the base station. Furthermore, cooperation among morethan two users with unequal message sizes is easily achieved withvarious techniques described herein. Also, in one embodiment, wheninter-user channels are determined to be “good” or satisfactory, areduced-complexity cooperation method can be used.

In accordance with the present description, as a roadmap for whatfollows, an exemplary cooperative concatenated coding architecture isfirst described. Delay and complexity considerations are discussed next.Then, some design criteria and code selection are discussed. Next, someperformance benefits of the embodiments described herein are quantifiedby plotting bit error rate using varying block sizes, varying numbers ofcooperating users, and a reduced-complexity cooperative encoder. In sum,results of applying the various cooperative concatenated codingtechniques herein show that, in addition to the benefit of spatialdiversity, significant coding benefits can be achieved compared withoperation of naive, conventional cooperation strategies, such as thosementioned in the background. Various other embodiments and underlyingconcepts are further described in more detail below.

Exemplary Cooperative Coding Architecture

A cooperative code architecture and its features are now described inconjunction with an embodiment providing a cooperative serialconcatenated convolutional code (SCCC) as the channel code thatcomprises a joint-user recursive systematic convolutional (RSC) innercode. Time-division-multiple-access (TDMA) uplink transmission is usedwith half-duplex communication where users can either transmit orreceive at a particular time.

FIG. 1 illustrates a flowchart of a method of cooperative concatenatedcoding in accordance with an exemplary, non-limiting embodiment. At 100,a user device (also referred to herein as a user) encodes its ownmessage. At 110, the user decodes cooperating partner(s)′ message(s). At120, the user re-encodes the cooperating partner(s)′ message(s) alongwith the user's own message to form a combined message. At 130, the usertransmits a subset of the combined message.

FIG. 2 illustrates a high-level block diagram of a cooperativeconcatenated coding system in accordance with another exemplarynon-limiting embodiment. In the example illustrated, the cooperativeconcatenated coding system 200 includes a base station 210 and twocooperating user devices—a first user device 220 and a second userdevice 230. The base station 210 is operable to receive data transmittedby the first user device 220 and/or by the second user device 230. Inthe example illustrated, the first user device 220 transmits a firstmessage S1 to the base station, and the second user device 230 transmitsa second message S2 to the base station.

In addition, each cooperating user device listens to the channel andattempts to decode the other user device(s)′ message(s). Upon successfuldecoding, a joint message Q is encoded jointly using all cooperatingusers' messages. Each user device then transmits a subset of Q to thebase station. In the example of FIG. 2, only two user devices areillustrated for simplicity's sake; however, it is to be understood thatthe invention is not limited to two cooperating user devices, but ratherany number of cooperating user devices can be used. In addition,although the example of FIG. 2 shows the second user device 230transmitting the first subset of Q, and the first user device 220transmitting the second subset of Q, the transmission of particularportions of Q by particular user devices can vary depending on amultitude of factors as contemplated or otherwise referred to herein.

A more detailed two-user example is given in FIG. 3 that demonstratesarchitectural differences among conventional non-cooperative,conventional coded cooperation, and the various embodiments describedherein. In this regard, the selection of SCCC with an RSC inner codeaccording to an embodiment, and other forms of concatenated codes isexplained below in more detail. The following notations are used in thefollowing description of the various embodiments.

X^((k))={X₁ ^((k)), X₂ ^((k)), . . . , X_(i) ^((k)), . . . } representsa set of blocks of bits, x_(i) ^((k)),s, of user k. The coded bits ofthe ith-coded block of user k are divided into two subsets, denoted byS_(i) ^((k)) and P_(i) ^((k)), as shown in FIG. 3. When a general useris referred to herein, the superscript is discarded.

In the subset of FIG. 3 generally designated as “(a),” a conventionalnon-cooperative scheme is illustrated. In this conventional scheme, eachuser simply transmits its own data during its own timeslots with nocooperation from other users. A conventional coded cooperation scheme isillustrated in the subset of FIG. 3 generally designated as “(c),” whichdiffers from the non-cooperative approach of “(a)” in that when thesource user transmits its first set of coded bits S to the base station,the cooperating partner listens to the channel and attempts to decodethe message. Upon successful decoding, the partner re-encodes themessage and helps the source user transmit the second set, P, to thebase station.

However, when a decoding failure is detected, the scheme either returnsto a non-cooperative mode or results in a partly cooperative mode. Inthe first instance, the failed user informs its partner about thefailure, and both of the users then transmit their own P withoutcooperation. In the second instance, the failed user also transmits itsown P instead in the cooperating timeslots, but without informing itspartner of the failure. This potentially leads to an additionaldiversity gain for the failed user on its own P at the expense of thepartner's error performance, which is then protected by a weaker (highercode-rate) channel code.

The subset of FIG. 3 in the middle generally designated as “(b)”represents an exemplary, non-limiting embodiment of a coded cooperationarchitecture. As shown, the coded bits transmitted by the cooperatingpartners are no longer P_(i)'s of individual users as with subsets “(a)”and “(c),” but rather a new set of coded bits, denoted byQ^((All))={Q⁽¹⁾, Q⁽²⁾, . . . , Q^((K))}, which are encoded jointly usingall K cooperating users' messages. Depending on the number of timeslotsallocated, each user transmits a subset of Q^((All)) accordingly.

A preliminary cooperating group is assumed to be formed prior to thetransmissions. The users first transmit their first set of coded bits Ssequentially, which corresponds to their outer codewords in embodimentsusing SCCC-based systems. Then, a short period is dedicated to everyuser to report simultaneously to the cooperating partners and the basestation about the occurrence of any decoding failures. Usersencountering a decoding failure of any other user's messages can beexcluded from the cooperating group and return to their own messageencoding. The users then take turns transmitting the next set of codedbits, either their own coded bits or the cooperatively encoded ones.

As mentioned above, in various non-limiting embodiments, the codedcooperation architecture described herein provides another dimension ofperformance boost in addition to a gain in spatial diversity byexploiting the interleaver gain of concatenated codes. Through usercooperation, the interleaver gain can be increased significantly so thata more powerful overall channel code is formed. In addition, thisframework enables cooperative flexibility in terms of the number ofcooperating users and message block lengths. The ideas can also beextended to multiple users as shown in subset “(b)” of FIG. 3 or to allusers transmitting together. If all users are transmitting together, forinstance, channel state information at the transmitters can be used.Asymmetric and arbitrary message block lengths among cooperating userscan also be supported, as demonstrated in subsets “(b)” and “(c)”,without the need for changing the timeslot allocation ratio.

SCCC is used in various embodiments of the cooperative code structure,and the encoder for a particular user k is illustrated in FIG. 4.M^((k)) denotes the user's source messages to be encoded using outerencoder 410, interleaver 420, and RSC inner encoder 430. Y^(out,k(k′))represents the set of outer codeword bits S^((k′)) received from anotheruser k′ that passes through a fading channel with additive whiteGaussian noise (AWGN). The same or similar interleaver can be adopted inthe joint-user cooperative encoder 440 for all users.

Suppose there are K total cooperating users each having all other K-1users' messages successfully decoded with K-1 cooperating users' codec510 of the joint-user cooperative encoder 500 shown in FIG. 5. As shown,the S's from all K users can be treated as an equivalent single-userouter codeword per the various outer decoders 512, 514 of codec 510, andthen passed through a pseudo-random interleaver 520 before they areencoded using joint-user RSC inner encoder 530. The systematic bits ofjoint-user RSC inner code 530 represent the outer codewords S's of allusers that are already transmitted to the base station by individualusers. Therefore, the set of parity bits Q^((All)) can be the only bitsthat are transmitted in the cooperating timeslots, with each usertransmitting only a subset according to respective numbers of allocatedtimeslots.

An exemplary iterative decoder 600 at the base station withsingle-input-single-output (SISO) component decoders 620 is illustratedin FIG. 6. Y^(in,BS(k)) and Y^(out,BS(k)) represent the sets of innercodeword bits Q^((k)) and outer codeword bits S^((k)) received from userk at the base station, respectively. They are first passed through acodeword mixer 610 that rearranges the bits into proper positions of thecorresponding codeword sequence of the joint-user inner code beforefeeding them into the inner SISO decoder 620 and deinterleaver 630.L_(e) ^(in)(S^((k))) represents the extrinsic information of S^((k))output from deinterleaver 630. L_(e) ^(out)(S^((k))) represents theextrinsic information of S^((k)) output from the outer SISO decoder k640. LLR(M^((k))) is the a posteriori information of user k's messagesfrom which decisions can be made.

Delay and Complexity Considerations

In many systems, there is often a trade-off among error performancegain, message delay, and implementation complexity. In this regard, atrade-off for error rate improvement is users' input decoding delay,which can be defined as the time period starting from a user's messagebeing input into the encoder until the output of a corresponding validcodeword from which the message is to be recovered. Since the innercodeword is jointly encoded from all users' messages, the maximum inputdecoding delay D^(max) is experienced by the first transmitting user andis characterized by Equation (1):

$\begin{matrix}{D^{\max} = {\sum\limits_{k = 1}^{K}T_{k}}} & (1)\end{matrix}$where T_(k) is the total time period scheduled for cooperating user kfor its message blocks in a K-user cooperation framework. When usershave the same message block size, the maximum delay is directlyproportional to the number of cooperating users. Nevertheless, sincecooperation is often carried out within a frame, this input delay isupper-bounded by only a frame and is usually preferable to the delayexperienced by re-transmissions in non-cooperative systems. The extendeddecoding delay at the base station induced by cooperation is assumednegligible compared to the single-user scenario in view of the largeprocessing power available there.

In terms of complexity, the major increase for every user lies on theadditional K-1 cooperating users' outer decoders 512, 514, as depictedin FIG. 5. This is a reasonable constraint for coded cooperationarchitectures where user(s) attempt to decode partner message(s)successfully before re-encoding into a different set of parity bits. Inaccordance with another aspect, embodiments described herein furtherreduce the overall complexity of the system. For instance, in oneembodiment, when the inter-user channels are of acceptable quality, theK-1 cooperating users' outer decoders, together with the correspondingencoders, can simply be replaced by K-1 demodulators wherehard-decisions are made directly on the received Y^(out,k(k′))'s. Thisreduction in complexity is not possible in many conventional systems.Moreover, in conventional systems with cooperation based on puncturedconcatenated codes, the complexity issue is substantial where iterativedecoders are required at the helping partner.

Some Design Criteria and Code Selection

In addition to spatial diversity and a reduction in complexity, aninterleaver gain can be achieved that increases with the number ofcooperating users. To achieve this type of interleaver gain, a firstissue is whether to use parallel or serial concatenation codes. BothTurbo codes and SCCC achieve an interleaver gain, which has thefollowing relationship with the bit error rate (BER) P_(b) at high SNRfor a given interleaver size N, as shown in Equation (2):P_(b)∝N^(α) ^(M)   (2)where N^(α) ^(M) is the interleaver gain and α_(M) the maximum exponentachieved depending on the code structure and characteristics of thecomponent codes. In this regard, α_(M)=−1 is always true for using aTurbo code while for SCCC the maximum exponent is given by Equation (3):

$\begin{matrix}{\alpha_{M} = {- \left\lfloor \frac{d_{f}^{o} + 1}{2} \right\rfloor}} & (3)\end{matrix}$with d_(f) ^(o) denoting the free distance of the outer code and └x┘ theinteger part of x. Therefore, SCCC is an optional alternative to using aTurbo code.

In addition, with respect to codeword separability, if a code is to beused for coded cooperation, the codewords can be partitioned into twosets as described above where the first set is powerful enough forpartners to decode the message, as well as the overall code. Asmentioned, the interleaver gain can be improved by user cooperation.Therefore, in general, the users' messages can be jointly encoded insome ways at each cooperating user after the first sets received fromtheir partners being decoded. The chosen code(s) favor this operation sothat the individually encoded first sets and the jointly encoded secondsets from all cooperating users together form a robust concatenated codewith an improved interleaver gain.

As mentioned above, in one embodiment, an SCCC structure with asystematic inner code (e.g., a joint user RSC) can be adopted. Asdescribed, in this embodiment, each user's outer codeword serves astheir first set S and is combined with other users' S's aftersuccessfully decoding and re-encoding to form a larger outer codewordfor the joint-user SCCC. In one embodiment with the RSC inner code, onlythe parity bits of the joint-user inner codeword are required to serveas the second set Q^((All)). The combined codeword is similar to anordinary single-user SCCC codeword with an enlarged input data blockadopting a larger interleaver. However, the equivalent outer code is aconcatenation of the cooperating users' outer codes. The equivalentinput-output weight enumerating function (IOWEF) A^(C) ^(o) (W,H) isexpressed by Equation (4):

$\begin{matrix}{{A^{C_{o}}\left( {W,H} \right)} = {{\prod\limits_{k = 1}^{K}{A^{C_{o},k}\left( {W,H} \right)}} = {\prod\limits_{k = 1}^{K}{\sum\limits_{w}{\sum\limits_{h}{A_{W,h}^{C_{o},k}W^{w}H^{h}}}}}}} & (4)\end{matrix}$where A^(C) ^(o) ^(,k)(W,H) is the IOWEF of the equivalent block code ofuser k's outer convolutional code and A_(w,h) ^(C) ^(o) ^(,k) denotesthe number of codewords with weight h generated by input words of weightw. Therefore, the minimum Hamming weight of codewords of the equivalentouter code can be given by Equation (5):

$\begin{matrix}{d_{f}^{o} = {\min\limits_{k}d_{f}^{o,k}}} & (5)\end{matrix}$with d_(f) ^(o,k) referring to the free distance of user k's outerconvolutional code. Due to space limitation, the exact analysis of thiscooperative code is not discussed herein. The analysis is a bitdifferent from the SCCC for the different nature of the equivalent outercode. However, it can be shown that the maximum exponent of N, i.e., theinterleaver size, of an SCCC with such an equivalent outer code will beupper-bounded by Equation (3) using Equation (5). Hence, it suffices touse Equations (3) and (5) as design criteria where the correspondinginterleaver gain specified can be guaranteed.

As mentioned above, both the overall equivalent code and the individualcomponent code should be good codes. Therefore, a desired code shouldfeature a significant improvement of the overall code at the same timewhen the component code is improved. SCCC is a good option because itsinterleaver gain is characterized by only the free distance of theequivalent outer code as shown in Equations (3) and (5) provided thatthe inner code is recursive. In addition, conventional systems havedemonstrated that a simple inner code is sufficient for delivering greaterror performance in both AWGN and fading channels. This implies thatthe additional decoding complexity due to the extended input block sizein user cooperation can be kept minimal, which is shown by thejoint-user inner decoder in FIG. 6.

Quantification of Exemplary Performance Benefits

FIGS. 7 and 8 show the performance of an embodiment of the cooperativecoding architecture for different numbers of cooperative users and inputblock sizes, respectively. Quasi-static fading is assumed where thechannels are constant during the transmissions. In order to betterillustrate the features of this embodiment, the scenario of an adaptivesystem is considered where the receive SNRs of all users are keptconstant at the base station. In many conventional coded cooperationsystems, the architecture will be reduced to the single-user case whenspatial diversity is not available. FIG. 9 shows an embodiment of thereduced-complexity cooperative encoding structure for differentinter-user channel conditions. In each of FIGS. 7-9, a rate-1/3 SCCC isadopted for all users with a 4-state outer code and a 4-state inner code(in observer canonical form) that are characterized by the generatingmatrices Gout and Gin, respectively, as

${G_{out} = \left\lbrack {{1 + D + D^{2}},{1 + D^{2}}} \right\rbrack},{G_{i\; n} = {\begin{bmatrix}{1,} & {0,} & \frac{1 + D^{2}}{1 + D + D^{2}} \\{0,} & {1,} & \frac{1 + D}{1 + D + D^{2}}\end{bmatrix}.}}$The free distance of the outer code is 5 that corresponds to aninterleaver gain of N⁻³. In this architecture, N corresponds to thetotal length of all outer codewords from the users. Quadrature phaseshift keying (QPSK) is chosen in one embodiment as the modulation schemein which each orthogonal channel carries one independent coded bit. Theinter-user channel is assumed perfect unless otherwise specified. Inpractice, coded cooperation is desired when inter-user channels arereasonably good. Suppose that the inter-user channels are independent.For a given frame error rate (FER) for the inter-user channels, theprobability of full cooperation among K users isPr(full cooperation among K users)=(1−FER)^(K(K-1))  (6)which is sufficiently high, for example, when FER=0.01 with 5cooperating users that correspond to a two-order error rate reduction.

In the example of FIG. 7, it can be observed that the error rate issignificantly reduced by user cooperation over conventional CC asrepresented by curve 700. Although the interleaver gain refers to theperformance of maximum-likelihood (ML) decoding, a similar gain can beobtained for an iterative decoder with only 6 iterations starting from1.5 dB. Referring to curve 710 with 3 users cooperating with each other,and comparing to curve 740 with 1 user, the BER is reduced from 2×10⁻²to 2×10⁻³ (˜1-order gain) and is further reduced to 4×10⁻⁴ (˜2-ordergain) when two more users participate in the cooperative transmission,as shown by curve 720, which are close to the predicted curves. Theconfiguration of a single user with 500 input bits is also given bycurve 730 as a reference for the case of 5-user cooperation in order tostudy the effect of difference in their equivalent outer codes asdiscussed earlier. In this example, they share the same interleaver sizeand achieve apparently the same BERs.

As shown in the example of FIG. 8, when the block size is increased, theperformance gain in BER follows the same trend of that obtained byincreasing the number of cooperating users. As indicated by (3), theinterleaver gain is proportional to the number of times the overallblock size is increased. However, in general, there are some SNRthresholds for the interleaver gain to become prominent for differenttotal input block size (interleaver size), as illustrated in FIG. 7 andFIG. 8. As shown by curve points 800, 810 and 820, at 1 dB, from curve800 to curve 810, there is almost a 1-order gain from input block sizeof 100 bits to 200 bits (2 times), and from curve 800 to curve 820,there is more than a 1-order gain from input block size of 100 bits to400 bits (4 times). However, it can be observed in FIG. 7 at curvepoints 750 and 760 that a smaller gain (<1 order) is achieved even whenthe number of users is increased from one to five (5 times). Thissuggests that the importance of interleaver gain on the overallperformance starts earlier at lower SNR for larger input block sizes.Curve 830 is illustrated in FIG. 8 to compare the case of no iterationsto the case of 6 iterations of curves 800, 810 and 820.

For one embodiment of the reduced-complexity cooperative encoderdiscussed earlier, hard decisions are made directly on the outercodeword bits from all users when cyclic redundancy checks cannot beperformed. Therefore, they are subject to the AWGN and a constant fadingduring the transmission, which can result in independent and identicallydistributed (i.i.d.) errors. In FIG. 9, an embodiment of a codedcooperation is evaluated with an exemplary reduced-complexitycooperative encoder for various inter-user channels conditions in termsof their uncoded BERs. At uncoded BER 10⁻⁶, the performance isessentially the same at curve 900 as the case of perfect inter-userchannels at curve 910. When the uncoded BER is 10⁻⁴ or 10⁻³ at curves920 and 930, a gain of one order can generally still be achieved.However, error propagation can become a serious issue in this situation,or can become even worse in the inter-user situation. Divergence occurswhen the number of iterations is more than three, which results indegraded performance. At higher SNR error, a floor may arise due to theerror propagation issue. Curve 940 is presented for comparison as thecase of no cooperation, with 6 iterations, and curve 950 isrepresentative of the case with no iteration.

As demonstrated in the examples of FIGS. 7-9, the cooperative codingarchitecture described in various embodiments achieves attractive errorperformance gain over conventional systems. The gain becomes larger byincreasing either the number of cooperating users or the input blocksize. This gain can be achieved by an iterative decoder using onlylimited number of iterations, e.g., 4 iterations in the examples. Withonly five users in cooperation, for example, the bit error rate can bereduced by two orders for BERs (10⁻³ and lower) of practical interest.Moreover, a similar improved trend is obtained for the frame error ratesusing the techniques described herein.

Conclusion

In various non-limiting embodiments, a cooperative concatenated codingstrategy is provided for a multi-user wireless network. The techniquesinclude additional coding benefits other than spatial diversity, incontrast to conventional systems where spatial diversity from differentcooperating users is required for a performance improvement.Specifically, a remarkable reduction in error rate can be achieved evenwhen the receive SNR of all cooperating users is maintained at aspecific level at the base station, such as in an adaptive transmissionsystem. The idea of interleaver gain of concatenated codes is adoptedand a significant reduction in error rate can be achieved by increasingthe number of cooperating users.

As described, multiple cooperating users with unequal message sizes canbe supported in the cooperating framework, without affecting thefairness among users in terms of number of channels (timeslots)allocated. A reduced-complexity cooperative encoding structure is alsoprovided for use when the inter-user channels are determined to be ofsufficient quality, i.e., meet pre-set criteria for use. Code designcriteria and the selection of an appropriate code were studied and SCCCwith an RSC inner code was shown to be an effective candidate. Theperformance was evaluated in the scenario of an adaptive transmissionsystem where the conventional coded cooperation strategy does notdeliver any performance improvement over its non-cooperativecounterpart. For instance, a two-order bit error rate reduction wasachieved with a simple rate 1/3 serial concatenated code when five userswere cooperating. Even with only two users, error rate is reduced by atleast one order in such scenario.

Exemplary Computer Networks and Environments

One of ordinary skill in the art can appreciate that the variousembodiments of cooperative concatenated coding described herein can beimplemented in connection with any computer or other client or serverdevice, which can be deployed as part of a computer network or in adistributed computing environment, and can be connected to any kind ofdata store. In this regard, the various embodiments described herein canbe implemented in any computer system or environment having any numberof memory or storage units, and any number of applications and processesoccurring across any number of storage units. This includes, but is notlimited to, an environment with server computers and client computersdeployed in a network environment or a distributed computingenvironment, having remote or local storage.

Distributed computing provides sharing of computer resources andservices by communicative exchange among computing devices and systems.These resources and services include the exchange of information, cachestorage and disk storage for objects, such as files. These resources andservices also include the sharing of processing power across multipleprocessing units for load balancing, expansion of resources,specialization of processing, and the like. Distributed computing takesadvantage of network connectivity, allowing clients to leverage theircollective power to benefit the entire enterprise. In this regard, avariety of devices may have applications, objects or resources that mayimplement one or more aspects of cooperative concatenated coding asdescribed for various embodiments of the subject disclosure.

FIG. 10 provides a schematic diagram of an exemplary networked ordistributed computing environment. The distributed computing environmentcomprises computing objects 1010, 1012, etc. and computing objects ordevices 1020, 1022, 1024, 1026, 1028, etc., which may include programs,methods, data stores, programmable logic, etc., as represented byapplications 1030, 1032, 1034, 1036, 1038. It can be appreciated thatobjects 1010, 1012, etc. and computing objects or devices 1020, 1022,1024, 1026, 1028, etc. may comprise different devices, such as PDAs,audio/video devices, mobile phones, MP3 players, personal computers,laptops, etc.

Each object 1010, 1012, etc. and computing objects or devices 1020,1022, 1024, 1026, 1028, etc. can communicate with one or more otherobjects 1010, 1012, etc. and computing objects or devices 1020, 1022,1024, 1026, 1028, etc. by way of the communications network 1040, eitherdirectly or indirectly. Even though illustrated as a single element inFIG. 10, network 1040 may comprise other computing objects and computingdevices that provide services to the system of FIG. 10, and/or mayrepresent multiple interconnected networks, which are not shown. Eachobject 1010, 1012, etc. or 1020, 1022, 1024, 1026, 1028, etc. can alsocontain an application, such as applications 1030, 1032, 1034, 1036,1038, that might make use of an API, or other object, software, firmwareand/or hardware, suitable for communication with or implementation ofthe cooperative concatenated coding architecture(s) provided inaccordance with various embodiments of the subject disclosure.

There are a variety of systems, components, and network configurationsthat support distributed computing environments. For example, computingsystems can be connected together by wired or wireless systems, by localnetworks or widely distributed networks. Currently, many networks arecoupled to the Internet, which provides an infrastructure for widelydistributed computing and encompasses many different networks, thoughany network infrastructure can be used for exemplary communications madeincident to the cooperative concatenated coding as described in variousembodiments.

Thus, a host of network topologies and network infrastructures, such asclient/server, peer-to-peer, or hybrid architectures, can be utilized.The “client” is a member of a class or group that uses the services ofanother class or group to which it is not related. A client can be aprocess, i.e., roughly a set of instructions or tasks, that requests aservice provided by another program or process. The client processutilizes the requested service without having to “know” any workingdetails about the other program or the service itself.

In a client/server architecture, particularly a networked system, aclient is usually a computer that accesses shared network resourcesprovided by another computer, e.g., a server. In the illustration ofFIG. 10, as a non-limiting example, computers 1020, 1022, 1024, 1026,1028, etc. can be thought of as clients and computers 1010, 1012, etc.can be thought of as servers where servers 1010, 1012, etc. provide dataservices, such as receiving data from client computers 1020, 1022, 1024,1026, 1028, etc., storing of data, processing of data, transmitting datato client computers 1020, 1022, 1024, 1026, 1028, etc., although anycomputer can be considered a client, a server, or both, depending on thecircumstances.

A server is typically a remote computer system accessible over a remoteor local network, such as the Internet or wireless networkinfrastructures. The client process may be active in a first computersystem, and the server process may be active in a second computersystem, communicating with one another over a communications medium,thus providing distributed functionality and allowing multiple clientsto take advantage of the information-gathering capabilities of theserver. Any software objects utilized pursuant to the techniques forperforming cooperative concatenated coding can be provided standalone,or distributed across multiple computing devices or objects.

In a network environment in which the communications network/bus 1040 isthe Internet, for example, the servers 1010, 1012, etc. can be Webservers with which the clients 1020, 1022, 1024, 1026, 1028, etc.communicate via any of a number of known protocols, such as thehypertext transfer protocol (HTTP). Servers 1010, 1012, etc. may alsoserve as clients 1020, 1022, 1024, 1026, 1028, etc., as may becharacteristic of a distributed computing environment.

Exemplary Computing Device

As mentioned, advantageously, the techniques described herein can beapplied to any device where it is desirable to transmit data from a setof cooperating users. It should be understood, therefore, that handheld,portable and other computing devices and computing objects of all kindsare contemplated for use in connection with the various embodiments,i.e., anywhere that a device may wish to transmit (or receive) data.Accordingly, the below general purpose remote computer described belowin FIG. 11 is but one example of a computing device. Additionally, anyof the embodiments implementing the cooperative concatenated coding asdescribed herein can include one or more aspects of the below generalpurpose computer.

Although not required, embodiments can partly be implemented via anoperating system, for use by a developer of services for a device orobject, and/or included within application software that operates toperform one or more functional aspects of the various embodimentsdescribed herein. Software may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by one or more computers, such as client workstations, serversor other devices. Those skilled in the art will appreciate that computersystems have a variety of configurations and protocols that can be usedto communicate data, and thus, no particular configuration or protocolshould be considered limiting.

FIG. 11 thus illustrates an example of a suitable computing systemenvironment 1100 in which one or aspects of the embodiments describedherein can be implemented, although as made clear above, the computingsystem environment 1100 is only one example of a suitable computingenvironment and is not intended to suggest any limitation as to scope ofuse or functionality. Neither should the computing environment 1100 beinterpreted as having any dependency or requirement relating to any oneor combination of components illustrated in the exemplary operatingenvironment 1100.

With reference to FIG. 11, an exemplary remote device for implementingone or more embodiments includes a general purpose computing device inthe form of a computer 1110. Components of computer 1110 may include,but are not limited to, a processing unit 1120, a system memory 1130,and a system bus 1122 that couples various system components includingthe system memory to the processing unit 1120.

Computer 1110 typically includes a variety of computer readable mediaand can be any available media that can be accessed by computer 1110.The system memory 1130 may include computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) and/orrandom access memory (RAM). By way of example, and not limitation,memory 1130 may also include an operating system, application programs,other program modules, and program data.

A user can enter commands and information into the computer 1110 throughinput devices 1140. A monitor or other type of display device is alsoconnected to the system bus 1122 via an interface, such as outputinterface 1150. In addition to a monitor, computers can also includeother peripheral output devices such as speakers and a printer, whichmay be connected through output interface 1150.

The computer 1110 may operate in a networked or distributed environmentusing logical connections to one or more other remote computers, such asremote computer 1170. The remote computer 1170 may be a personalcomputer, a server, a router, a network PC, a peer device or othercommon network node, or any other remote media consumption ortransmission device, and may include any or all of the elementsdescribed above relative to the computer 1110. The logical connectionsdepicted in FIG. 11 include a network 1172, such local area network(LAN) or a wide area network (WAN), but may also include othernetworks/buses. Such networking environments are commonplace in homes,offices, enterprise-wide computer networks, intranets and the Internet.

Exemplary Communications Networks and Environments

The above-described optimizations may be applied to any network,however, the following description sets forth some exemplary telephonyradio networks and non-limiting operating environments for incorporationof the various embodiments described herein. The below-describedoperating environments should be considered non-exhaustive, however, andthus the below-described network architecture merely shows one networkarchitecture into which the various embodiments described herein may beincorporated. One can appreciate, however, that the embodiment(s) may beincorporated into any now existing or future alternative architecturesfor communication networks as well.

The global system for mobile communication (“GSM”) is one of the mostwidely utilized wireless access systems in today's fast growingcommunication systems. GSM provides circuit-switched data services tosubscribers, such as mobile telephone or computer users. General PacketRadio Service (“GPRS”), which is an extension to GSM technology,introduces packet switching to GSM networks. GPRS uses a packet-basedwireless communication technology to transfer high and low speed dataand signaling in an efficient manner. GPRS optimizes the use of networkand radio resources, thus enabling the cost effective and efficient useof GSM network resources for packet mode applications.

As one of ordinary skill in the art can appreciate, the exemplaryGSM/GPRS environment and services described herein can also be extendedto 3G services, such as Universal Mobile Telephone System (“UMTS”),Frequency Division Duplexing (“FDD”) and Time Division Duplexing(“TDD”), High Speed Packet Data Access (“HSPDA”), cdma2000 1x EvolutionData Optimized (“EVDO”), Code Division Multiple Access-2000 (“cdma20003x”), Time Division Synchronous Code Division Multiple Access(“TD-SCDMA”), Wideband Code Division Multiple Access (“WCDMA”), EnhancedData GSM Environment (“EDGE”), International MobileTelecommunications-2000 (“IMT-2000”), Digital Enhanced CordlessTelecommunications (“DECT”), etc., as well as to other network servicesthat shall become available in time. In this regard, the techniquesdescribed herein may be applied independently of the method of datatransport, and need not depend on any particular network architecture,or underlying protocols, except where specified otherwise.

FIG. 12 depicts an overall block diagram of an exemplary packet-basedmobile cellular network environment, such as a GPRS network, in whichone or more embodiments may be practiced. In such an environment, thereare a plurality of Base Station Subsystems (“BSS”) 1200 (only one isshown), each of which comprises a Base Station Controller (“BSC”) 1202serving a plurality of Base Transceiver Stations (“BTS”) such as BTSs1204, 1206, and 1208. BTSs 1204, 1206, 1208, etc. are the access pointswhere users of packet-based mobile devices become connected to thewireless network. In exemplary fashion, the packet traffic originatingfrom user devices is transported over the air interface to a BTS 1208,and from the BTS 1208 to the BSC 1202. Base station subsystems, such asBSS 1200, are a part of internal frame relay network 1210 that mayinclude Service GPRS Support Nodes (“SGSN”) such as SGSN 1212 and 1214.

Each SGSN is in turn connected to an internal packet network 1220through which a SGSN 1212, 1214, etc. can route data packets to and froma plurality of gateway GPRS support nodes (GGSN) 1222, 1224, 1226, etc.As illustrated, SGSN 1214 and GGSNs 1222, 1224, and 1226 are part ofinternal packet network 1220. Gateway GPRS serving nodes 1222, 1224 and1226 mainly provide an interface to external Internet Protocol (“IP”)networks such as Public Land Mobile Network (“PLMN”) 1245, corporateintranets 1240, or Fixed-End System (“FES”) or the public Internet 1230.As illustrated, subscriber corporate network 1240 may be connected toGGSN 1224 via firewall 1232; and PLMN 1245 is connected to GGSN 1224 viaboarder gateway router 1234. The Remote Authentication Dial-In UserService (“RADIUS”) server 1242 may be used for caller authenticationwhen a user of a mobile cellular device calls corporate network 1240.

Generally, there can be four different cell sizes in a GSMnetwork—macro, micro, pico and umbrella cells. The coverage area of eachcell is different in different environments. Macro cells can be regardedas cells where the base station antenna is installed in a mast or abuilding above average roof top level. Micro cells are cells whoseantenna height is under average roof top level; they are typically usedin urban areas. Pico cells are small cells having a diameter is a fewdozen meters; they are mainly used indoors. On the other hand, umbrellacells are used to cover shadowed regions of smaller cells and fill ingaps in coverage between those cells.

Thus, network elements that may implicate the functionality of theoptimization algorithms and processes in accordance with the inventionmay include but are not limited to Gateway GPRS Support Node tables,Fixed End System router tables, firewall systems, VPN tunnels, and anynumber of other network elements as required by the particular digitalnetwork.

The word “exemplary” is used herein to mean serving as an example,instance, or illustration. For the avoidance of doubt, the subjectmatter disclosed herein is not limited by such examples. In addition,any aspect or design described herein as “exemplary” is not necessarilyto be construed as preferred or advantageous over other aspects ordesigns, nor is it meant to preclude equivalent exemplary structures andtechniques known to those of ordinary skill in the art. Furthermore, tothe extent that the terms “includes,” “has,” “contains,” and othersimilar words are used in either the detailed description or the claims,for the avoidance of doubt, such terms are intended to be inclusive in amanner similar to the term “comprising” as an open transition wordwithout precluding any additional or other elements.

Various implementations of the invention described herein may haveaspects that are wholly in hardware, partly in hardware and partly insoftware, as well as in software. As used herein, the terms “component,”“system” and the like are likewise intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon computer and the computer can be a component. One or more componentsmay reside within a process and/or thread of execution and a componentmay be localized on one computer and/or distributed between two or morecomputers.

Thus, the methods and apparatus of the present invention, or certainaspects or portions thereof, may take the form of program code (i.e.,instructions) embodied in tangible media, such as floppy diskettes,CD-ROMs, hard drives, or any other machine-readable storage medium,wherein, when the program code is loaded into and executed by a machine,such as a computer, the machine becomes an apparatus for practicing theinvention. In the case of program code execution on programmablecomputers, the computing device generally includes a processor, astorage medium readable by the processor (including volatile andnon-volatile memory and/or storage elements), at least one input device,and at least one output device.

Furthermore, the disclosed subject matter may be implemented as asystem, method, apparatus, or article of manufacture using standardprogramming and/or engineering techniques to produce software, firmware,hardware, or any combination thereof to control a computer or processorbased device to implement aspects detailed herein. The terms “article ofmanufacture”, “computer program product” or similar terms, where usedherein, are intended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. For example, computerreadable media can include but are not limited to magnetic storagedevices (e.g., hard disk, floppy disk, magnetic strips . . . ), opticaldisks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ),smart cards, and flash memory devices (e.g., card, stick). Additionally,it is known that a carrier wave can be employed to carrycomputer-readable electronic data such as those used in transmitting andreceiving electronic mail or in accessing a network such as the Internetor a local area network (LAN).

The aforementioned systems have been described with respect tointeraction between several components. It can be appreciated that suchsystems and components can include those components or specifiedsub-components, some of the specified components or sub-components,and/or additional components, and according to various permutations andcombinations of the foregoing. Sub-components can also be implemented ascomponents communicatively coupled to other components rather thanincluded within parent components, e.g., according to a hierarchicalarrangement. Additionally, it should be noted that one or morecomponents may be combined into a single component providing aggregatefunctionality or divided into several separate sub-components, and anyone or more middle layers, such as a management layer, may be providedto communicatively couple to such sub-components in order to provideintegrated functionality. Any components described herein may alsointeract with one or more other components not specifically describedherein but generally known by those of skill in the art.

In view of the exemplary systems described supra, methodologies that maybe implemented in accordance with the disclosed subject matter will bebetter appreciated with reference to the various flowcharts representedby the Figures. While for purposes of simplicity of explanation, themethodologies are shown and described as a series of blocks, it is to beunderstood and appreciated that the claimed subject matter is notlimited by the order of the blocks, as some blocks may occur indifferent orders and/or concurrently with other blocks from what isdepicted and described herein. Where non-sequential, or branched, flowis illustrated via flowchart, it can be appreciated that various otherbranches, flow paths, and orders of the blocks, may be implemented whichachieve the same or a similar result. Moreover, not all illustratedblocks may be required to implement the methodologies describedhereinafter.

Furthermore, as will be appreciated various portions of the disclosedsystems above and methods below may include or consist of artificialintelligence or knowledge or rule based components, sub-components,processes, means, methodologies, or mechanisms (e.g., support vectormachines, neural networks, expert systems, Bayesian belief networks,fuzzy logic, data fusion engines, classifiers . . . ). Such components,inter alia, can automate certain mechanisms or processes performedthereby to make portions of the systems and methods more adaptive aswell as efficient and intelligent.

While the present invention has been described in connection with thepreferred embodiments of the various figures, it is to be understoodthat other similar embodiments may be used or modifications andadditions may be made to the described embodiment for performing thesame function of the present invention without deviating therefrom.

While exemplary embodiments refer to utilizing the present invention inthe context of particular programming language constructs,specifications, or standards, the invention is not so limited, butrather may be implemented in any language to perform the optimizationalgorithms and processes. Still further, the present invention may beimplemented in or across a plurality of processing chips or devices, andstorage may similarly be affected across a plurality of devices.Therefore, the present invention should not be limited to any singleembodiment, but rather should be construed in breadth and scope inaccordance with the appended claims.

1. A method, comprising: encoding a first message from a firstcooperating device of at least two cooperating devices; receiving asecond message from a second cooperating device of the at least twocooperating devices; decoding the second message; re-encoding at least aportion of the second message with at least a portion of the firstmessage to form a combined message based on at least one cooperativeserial concatenated convolutional code (SCCC) and at least one jointuser recursive systematic convolutional (RSC) inner code; andtransmitting at least a portion of the combined message over a singlechannel.
 2. The method of claim 1, further comprising reducing a biterror rate, independent of spatial diversity of the at least twocooperating devices, for communicating the second message.
 3. The methodof claim 1, further comprising transmitting the first message.
 4. Themethod of claim 1, wherein the transmitting at least the portion of thecombined message includes transmitting at least a portion of parity bitsof the combined message.
 5. The method of claim 1, further comprisingtransmitting the first message from the first cooperating device to atleast one other device.
 6. The method of claim 5, further comprisingdetecting a communications failure.
 7. The method of claim 6, furthercomprising disabling communications with at least one device in responseto detecting the communications failure.
 8. A device, comprising: awireless communications component configured to receive a second messagefrom at least a second cooperating device; and an encoder/decoderconfigured to encode at least a first message received from at least afirst cooperating device and configured to decode the second messagefrom the at least the second cooperating device to a decoded message,wherein the encoder/decoder re-encodes, using joint recursive systematicconvolutional (RSC) inner codes, at least a portion of the decodedmessage together with at least a portion of the first message of thefirst cooperating device to form a combined message for transmissionover a single channel.
 9. The device of claim 8, wherein theencoder/decoder is configured to re-encode at least the portion of thedecoded message based on cooperative serial concatenated convolutionalcodes (SCCC).
 10. The device of claim 8, wherein the wirelesscommunications component is configured to transmit at least a portion ofthe combined message to at least one other cooperating device.
 11. Thedevice of claim 8, wherein the wireless communications component isconfigured to reduce a bit error rate for communicating the secondmessage independent of spatial diversity.
 12. The device of claim 8,wherein the wireless communications component is configured to transmitthe first message or the second message to at least one other device.13. A system, comprising: a receiver configured to process a jointmessage transmitted over a single channel that is encoded from datareceived from at least two cooperating devices, wherein the jointmessage includes at least a portion of a first message; and at least aportion of a second message; and a cooperative serial concatenatedconvolutional (SCC) encoder configured to process the first message andthe second message and configured to reduce a bit error rate forcommunicating the second message independent of spatial diversity of theat least two cooperative devices.
 14. The system of claim 13, furthercomprising a joint user recursive systematic convolutional (RSC) innerencoder.
 15. The system of claim 13, wherein the cooperative SCC encoderincludes at least one demodulator, the output of which provides a basisfor a determination regarding the second message.
 16. The system ofclaim 13, further comprising a component configured to decode the jointmessage.
 17. The system of claim 16, wherein the component includes aplurality of single-input-single-output (SISO) decoders.
 18. The systemof claim 13, wherein the joint message is transmitted in an adaptivesystem or a propagation environment with substantially line-of-sightcharacteristics.
 19. The system of claim 13, further comprising acomponent to process a threshold minimum distance for protection ofinter-user channels.
 20. The system of claim 13, wherein the bit errorrate of the system decreases when a block size of at least the firstmessage and second message is increased.
 21. The system of claim 13,wherein the bit error rate of the system decreases when a number ofcooperating devices is increased greater than the at least twocooperating devices.
 22. A tangible computer-readable medium havinginstructions stored thereon, the instructions comprising: instructionsfor concatenating messages received from a subset of cooperating devicesin a wireless network for transmission over a single channel;instructions for analyzing a signal-to-noise ratio (SNR) associated withthe messages received from the wireless network including instructionsfor maintaining the SNR according to a predetermined range for the SNR;and instructions for reducing a data error rate in view of the SNR andbased in part on the subset of cooperating devices detected in thewireless network.
 23. The computer-readable medium of claim 22, furthercomprising instructions for controlling an interleaver gain within thewireless network.
 24. The computer-readable medium of claim 23, whereinthe interleaver gain is associated with at least one concatenated codeadapted to reduce a data error rate.
 25. The computer-readable medium ofclaim 23, wherein the interleaver gain is associated with instructionsthat increase a number of cooperating devices or an input block size.26. The computer-readable medium of claim 25, further comprisinginstructions to control the interleaver gain via iterative decodinginstructions.
 27. The computer-readable medium of claim 22, furthercomprising instructions for controlling a frame error rate for at leastone message associated with the subset of cooperating devices.
 28. Adevice, comprising: a receiver configured to receive data generated byone or more fairness routines applied by multiple cooperating devicesover a single channel; and a decoder configured for inter-devicechannels processed by the receiver that are determined to meet at leastone quality criterion.
 29. The device of claim 28, wherein the data isassociated with a serial concatenated convolutional code (SCCC) or atleast one joint recursive systematic convolutional (RSC) inner code. 30.The device of claim 28, wherein the decoder is configured to operate onouter codeword bits in response to an inability to perform cyclicredundancy checks.
 31. The device of claim 28, further comprising acomponent configured to adjust one or more gain settings associated witha wireless network on which at least a subset of the multiplecooperating devices are cooperating.
 32. The device of claim 31, furthercomprising a data processing component configured to analyze the datafrom the multiple cooperating devices having equal or unequal messagesizes in a wireless network on which at least a subset of the multiplecooperating devices are cooperating.
 33. The device of claim 28, furthercomprising a component configured to analyze one or more signal-to-noiseratios associated with a wireless network on which at least a subset ofthe multiple cooperating devices are cooperating.